// 精灵的基类，用于初始化精灵加载的资源和大小，以及位置信息
import {DataStore} from "./DataStore.js";

export class Sprite {
    constructor(img=null,srcX=0,srcY=0,srcW=0,srcH=0,x=0,y=0,width=0,height=0){
        this.dataStore=DataStore.getInstance();
        this.ctx =this.dataStore.ctx;
        this.img = img;
        this.srcX = srcX;
        this.srcY = srcY;
        this.srcW = srcW;
        this.srcH = srcH;
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
    /**
     * img 传入的Image对象
     * srcX,srcY,srcW,srcH 要剪裁的起始X坐标，Y坐标，宽度和高度
     * x，y，width，height 放置的x，y坐标以及要使用的宽度和高度
     */
    draw(img=this.img,srcX=this.srcX,srcY=this.srcY,srcW=this.srcW,srcH=this.srcH,x=this.x,y=this.y,width=this.width,height=this.height){
        this.ctx.drawImage(img,srcX,srcY,srcW,srcH,x,y,width,height);
    }

    static getImage(key){
        return DataStore.getInstance().res.get(key);
    }
}